package com.ideal.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.ideal.dto.DictInfoDto;
import com.ideal.dto.ResultDto;
import com.ideal.dto.config.req.FileConfigPageReqDto;
import com.ideal.dto.config.req.SysTreeDictReqDto;
import com.ideal.model.SysTreeDict;

/**
 * 树形结构字典Service接口
 *
 * @author ruoyi
 * @date 2022-07-21
 */
public interface ISysTreeDictService
{
    /**
     * 查询树形结构字典
     *
     * @param dictId 树形结构字典主键
     * @return 树形结构字典
     */
    public SysTreeDict selectSysTreeDictByDictId(Long dictId);

    /**
     * 查询树形结构字典列表
     *
     * @param sysTreeDict 树形结构字典
     * @return 树形结构字典集合
     */
    public List<SysTreeDict> selectSysTreeDictList(SysTreeDict sysTreeDict);

    /**
     * 新增树形结构字典
     *
     * @param sysTreeDict 树形结构字典
     * @return 结果
     */
    public int insertSysTreeDict(SysTreeDict sysTreeDict);

    /**
     * 修改树形结构字典
     *
     * @param sysTreeDict 树形结构字典
     * @return 结果
     */
    public int updateSysTreeDict(SysTreeDict sysTreeDict);

    /**
     * 批量删除树形结构字典
     *
     * @param dictId 需要删除的树形结构字典主键集合
     * @return 结果
     */
    public int deleteSysTreeDictByDictIds(Long dictId);

    /**
     * 删除树形结构字典信息
     *
     * @param dictId 树形结构字典主键
     * @return 结果
     */
    public int deleteSysTreeDictByDictId(Long dictId);

    /**
     * 字典子数据查询
     * @param dictValue
     * @return
     */
    List<DictInfoDto> dictChildDetail(String dictValue);

    /**
     * 分页查询页面数据
     * @param sysTreeDictReqDto
     * @return
     */
    PageInfo page(SysTreeDictReqDto sysTreeDictReqDto);


    /**
     * 获取
     * @param dictLabel
     * @return
     */
    DictInfoDto findOneByDictLabel(String dictLabel);

    DictInfoDto findParentOneByDictValue(String dictValue);

    ResultDto checkFileSwitch(String dictValue);

    ResultDto getFileState(String dictValue);

    SysTreeDict findFileSwitchDataByDictValue(String dictValue);

}
